/**
 * 智能分页显示工具函数
 * 根据当前页码和总页数，智能显示分页按钮
 * @param {number} currentPage - 当前页码
 * @param {number} totalPages - 总页数
 * @param {number} maxVisible - 最大显示按钮数（默认5个）
 * @returns {Array} 要显示的页码数组
 */
export function getSmartPageNumbers(currentPage, totalPages, maxVisible = 5) {
  if (totalPages <= maxVisible) {
    // 如果总页数小于等于最大显示数，显示所有页码
    return Array.from({ length: totalPages }, (_, i) => i + 1)
  }

  const pages = []
  
  // 当页码小于等于2时，显示前5页
  if (currentPage <= 2) {
    for (let i = 1; i <= Math.min(maxVisible, totalPages); i++) {
      pages.push(i)
    }
  } else {
    // 当页码大于等于3时，显示当前页附近的页码
    const start = Math.max(1, currentPage - 2)
    const end = Math.min(totalPages, start + maxVisible - 1)
    
    // 调整起始页码，确保显示足够的页码
    const adjustedStart = Math.max(1, end - maxVisible + 1)
    
    for (let i = adjustedStart; i <= end; i++) {
      pages.push(i)
    }
  }

  return pages
}

/**
 * 检查是否需要显示省略号
 * @param {number} currentPage - 当前页码
 * @param {number} totalPages - 总页数
 * @param {Array} visiblePages - 当前显示的页码数组
 * @returns {Object} 包含前后省略号状态的对象
 */
export function getEllipsisStatus(currentPage, totalPages, visiblePages) {
  if (visiblePages.length === 0) {
    return { showStart: false, showEnd: false }
  }

  const minPage = Math.min(...visiblePages)
  const maxPage = Math.max(...visiblePages)

  return {
    showStart: minPage > 1,
    showEnd: maxPage < totalPages
  }
} 